Electronic systems such as conventional computer systems and monitoring systems utilize hardware processing devices to execute programming to perform various tasks. For example, a monitoring system may include various sensors for temperature, voltage, speed, and other values. As a specific example, there may be 200-300 sensors in a monitoring system for a single server computer monitoring such values as power supply voltage, disk drive temperature, and cooling fan speed. The sensors of a monitoring system communicate back through a bus to a master node that is a hardware processing device. Such hardware processing devices may range in complexity, but system-on-a-chip (“SOC”) processors are often used in monitoring systems due to the efficient packaging and full functionality.
Conventionally, the SOC operates within the monitoring system by executing an engine defining the monitoring activities. The engine references a flat file of sensor definitions that are specific for the particular monitoring system. The engine is based on custom programming compiled for the particular SOC that it is to be executed by. To modify the monitoring activities, such as when new sensors require monitoring activities not previously provided for, then the engine must be modified at the source level, then recompiled and loaded onto the SOC. This is a time-consuming and troublesome process. Because the engine is typically created by a first entity and packaged in compiled form with the SOC while the monitoring system is constructed and/or commercialized by a second entity, any change to the monitoring activities by the second entity necessitates that the second entity rely on the first entity to modify the engine accordingly to include the new monitoring activities.
An example of such monitoring activities includes control logic. For example, an initial engine may allow the monitoring system to monitor the sensors and then trigger an alarm to annunciate a problem. However, it may be desirable to add new monitoring activities such as control logic to enable the monitoring system to shut down a malfunctioning element such as a cooling fan and/or to control the operation of additional cooling fans to compensate. Should the manufacturer and/or seller of the monitoring system wish to include this new monitoring function, then the manufacturer must rely on the provider of the engine programming to adapt the source code to provide this control logic and then recompile the engine for the particular SOC being employed. This results in an impediment for the manufacturer or seller of the monitoring system, in terms of both time and costs of development. Furthermore, this requires that the manufacturer or seller disclose the details of the monitoring system to the engine provider when such disclosure may not be desired.